#ifndef KUKAFORCECONTROLDLL_H
#define KUKAFORCECONTROLDLL_H

#include <QFile>
#include <QTextStream>
#include <QObject>
#include <QWidget>

#include "kukaforcecontroldll_global.h"

#define kukatecPluginInterface_IDD "kukatecPluginInterface_idd"

class kukatecPluginInterface : public QWidget{
Q_OBJECT
public:
     ~kukatecPluginInterface() {}
     kukatecPluginInterface()  {}

     virtual QWidget* RegisiterPluginUi() = 0;

     virtual void FastTimerLoop() = 0;
     virtual void SlowTimerLoop() = 0;

     virtual void RegisterMainInitTask() = 0;
     virtual void RegisterMainLoopTask() = 0;

     virtual void RegisterKUKAInitTask() = 0;
     virtual void RegisterKUKALoopTask() = 0;

     virtual void BackendDataRecv(QByteArray Data) = 0;
     virtual void BackendDataSend(QByteArray& Data) = 0;
};

Q_DECLARE_INTERFACE(kukatecPluginInterface, kukatecPluginInterface_IDD)

class  KUKAForceControlDLL : public kukatecPluginInterface{
    Q_OBJECT
    Q_PLUGIN_METADATA(IID "kukatecPluginInterface_idd")
    Q_INTERFACES(kukatecPluginInterface)
public:
    KUKAForceControlDLL();
    ~KUKAForceControlDLL();

    QWidget* RegisiterPluginUi();

    void FastTimerLoop();
    void SlowTimerLoop();

    void RegisterMainInitTask();
    void RegisterMainLoopTask();

    void RegisterKUKAInitTask();
    void RegisterKUKALoopTask();

    void BackendDataRecv(QByteArray Data);
    void BackendDataSend(QByteArray& Data);
};

#endif // KUKAFORCECONTROLDLL_H
